﻿package  
{
	import flash.display.*;
	import flash.events.*;
	import flash.net.*;
	import flash.text.*;
	import fl.controls.UIScrollBar;
	
	
	public class getRezept extends SimpleButton
	{
		var titeltxt:TextField = new TextField();
		var formattitel:TextFormat = new TextFormat();
		var rezepttxt:TextField = new TextField();
		var formatrezept:TextFormat = new TextFormat();
		var scrollbar:UIScrollBar = new UIScrollBar();		
		
		public function getRezept() 
		{
			addEventListener(MouseEvent.CLICK, fetch);
			
			titeltxt.autoSize = "left";
			titeltxt.x = 20;
			titeltxt.y = 440;
			formattitel.font = "Arial";
			formattitel.size = 18;
			titeltxt.setTextFormat(formattitel);
			rezepttxt.x = 20;
			rezepttxt.y = 485;
			rezepttxt.width = 505;
			rezepttxt.height = 300;
			rezepttxt.wordWrap = true;
			rezepttxt.multiline = true;
			formatrezept.font = "Arial";
			formatrezept.size = 14;
			
			// add elements to stage
		    this.parent.addChild(titeltxt);
			this.parent.addChild(rezepttxt);

        }
		
		private function fetch(e:Event):void {

			// xml from Stock-Server
			const request:URLRequest = new URLRequest("http://minf3.mstock.de/data/ChiliConCarne.xml");
			
			// load the xml
			const xmlLoader:URLLoader = new URLLoader();
			
			// Listener eintragen:
			xmlLoader.addEventListener(Event.COMPLETE, onLoadedXML);
			// für Fehlerfälle:
			xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
			xmlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onLoadError);
			
			xmlLoader.load(request);
		}
		
		private function onLoadedXML(e:Event):void 
		{
			// Kommentare in der XML Datei ignorieren
			XML.ignoreComments = true;		
			// Leerzeichen ignorieren
			XML.ignoreWhitespace = true;
		
			try {
				// XML-Objekt erstellen aus geladenen Daten
				var xml = new XML(e.target.data);
				
				// sichtbarmachen:
				//trace(xml);
				// Beispielzugriff auf Element der ersten Ebene
				titeltxt.text = "";
				rezepttxt.text = "";
				titeltxt.text = xml.titel.text() + " - von " + xml.autor.text();
				titeltxt.setTextFormat(formattitel);
				rezepttxt.text = "Zutaten:\n\n";
				for (var i = 0; i < xml.zutat.length(); i++) {
					rezepttxt.appendText(xml.zutat[i].name.text() + " - " + xml.zutat[i].menge.text() + "\n");
				}
				rezepttxt.appendText("\n\nZubereitung:\n\n");
				for (var j = 0; j < xml.zubereitung.length(); j++) {
					rezepttxt.appendText((j+1) + ". " + xml.zubereitung[j].text() + "\n\n");
				}
				rezepttxt.setTextFormat(formatrezept);
				scrollbar.direction = "vertical";
				scrollbar.setSize(scrollbar.width, rezepttxt.height);
				scrollbar.move(rezepttxt.x + rezepttxt.width, rezepttxt.y);
				scrollbar.scrollTarget = rezepttxt;
				this.parent.addChild(scrollbar);

				
			} catch (e:TypeError) {
				trace(e);
			}
		}
		
		private function onLoadError(e:IOErrorEvent):void 
		{
			trace(e);
		}
	}
}